using System;
using System.Collections.Generic;

namespace PluginFrame
{
	public interface IPcrInstrument
	{
		IPcrStructure PcrStructure { get; }

		DateTime Date { get; }

		string ID { get; set; }

		InstrumentType Type { get; set; }

		bool IsOfflineData { get; set; }

		string[] ChannelNames { get; }

		Dictionary<string, IChannelConfiguration> ChannelConfigurations { get; }

		List<double>[] ChannelCellGain { get; set; }

		void InitializeInstrumentData(string instrumentID, byte[] channelData, bool isOfflineData);

		string GenerateInstrumentID();

		double GetChannelGain(int channelIndex);

		void SetChannelGain(int channelIndex, double value);
	}
}
